package cn.lijian.goods.cart.service;

import java.sql.SQLException;
import java.util.List;

import cn.itcast.commons.CommonUtils;
import cn.lijian.goods.cart.dao.CartItemDao;
import cn.lijian.goods.cart.domain.CartItem;

public class CartItemService {
	private CartItemDao cartItemDao=new CartItemDao();
	/**
	 * 加载多个 cartitem
	 * @param cartItemIds
	 * @return
	 * @author lijian
	 */
	public List<CartItem>loadCartItem(String cartItemIds){
		try {
			return cartItemDao.loadCartItemIds(cartItemIds);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			throw new RuntimeException(e);
		}
	}
	
	public CartItem updateQuantity(String cartItemId,int quantity){
		try {
			cartItemDao.updateQuantity(cartItemId, quantity);
			return cartItemDao.findByCartItemId(cartItemId);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			throw new RuntimeException(e);
		}
	}
	
	/**
	 * 批量删除
	 * @param cartItemIds
	 * @author lijian
	 */
	public void batchDelete(String cartItemIds){
		try {
			cartItemDao.batchDelete(cartItemIds);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			throw new RuntimeException(e);
		}
	}
	
	/**
	 * 添加条目
	 * @param cartItem
	 * @author lijian
	 * @throws SQLException 
	 */
	public void add(CartItem cartItem) throws SQLException{
		CartItem _cartItem=cartItemDao.findByUidAndBid( cartItem.getUser().getUid(),cartItem.getBook().getBid());
		if(_cartItem==null){//如果原来没有这个条目
			cartItem.setCartItemId(CommonUtils.uuid());
			cartItemDao.addCartItem(cartItem);
		}else{//如果原来有这个条目，修改数量
			int quantity=cartItem.getQuantity()+_cartItem.getQuantity();
			cartItemDao.updateQuantity(_cartItem.getCartItemId(), quantity);
		}
		
	}
	
	
	/**
	 * 我的购物车
	 * @param uid
	 * @return
	 * @author lijian
	 */
	public List<CartItem> myCart(String uid){
		try {
			return cartItemDao.findByUser(uid);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			throw new RuntimeException(e);
		}
	}
}
